Cloud computing is a term used to describe systems and methods that provide dynamically scalable computing resources, usually in a networked environment. Such services are often virtualized and delivered as a service over the Internet on a subscription basis. For example, customers of cloud services can rent the capacity provided by one or more servers simply by ordering them up (or “instantiating”) one or more servers. Users need not have sufficient expertise even to know the specific hardware or software resources required, or that they are using when they order capacity. Cloud users generally do not own the physical resources but in some cases they do because of cost considerations. For example, some users can own servers, which are cost-effectively fully utilized, and subscribe to cloud services to fill the gap in their deployment. The majority of cloud computing infrastructures typically include services delivered through data centers and built on servers with different levels of virtualization technologies.
Cloud services are commonly accessed from a web browser through sessions that are generated by software running on server or a cloud. Cloud services, sometimes called “hybrid cloud,” can be implemented as a combination of privately-owned resources on a private network or Internet, and public cloud resources that are ordered and utilized as required. Public clouds are provided by third party vendors. Hybrid clouds provide an optimum combination of public and private cloud resources for greatest cost-effect. Private clouds can include on-premise Infrastructure-as-a-Service (IaaS) cloud resources, although other types of legacy infrastructure can be integrated in a hybrid cloud service such as mainframes and legacy server “blades.”
In a cloud resource, one or more physical host machines or virtual machines (VMs) or nodes operate using a respective operating system and software applications. A virtual machine monitor or VMM manages the allocation and virtualization of computer resources to cycle between various VMs to provide virtual isolation of the VMs in the cloud system thereby providing privacy for the respective users. Note that users may refer to an institution or organization or group of individuals or single individual within an institution or organization and cloud may refer to a hybrid, public, or private cloud-type resource.
In current cloud systems, management processes of the cloud computing system poll for data concerning the status of managed components such as server instances. The management process is centralized and may be run on any suitable processor sufficiently connected to the hybrid cloud, for example it may run on one or more nodes of the hybrid cloud including one or more virtual machines. The status of a component may be indicated by state information such as memory allocation, space available on rotating or SSD media or other non-volatile storage, duty cycle, system load, bandwidth utilization factor, and network interaction details. The management process may compare a status policy with the status information to determine if a node matches the status policy. In prior art systems, the status information may be principally concerned with the state of specific resources and policies directed at those specific resources.
Another type of policy, herein referred to as utilization policy, codifies the obligations of users according to the cloud resource owner as to the types and amount of resources that may be created, authorization to make changes, and how changes may be made. Utilization policies are enforced when resources are allocated or changed. Utilization policies refer to parameters of the resource allocation that may be established by the user at the time of the request for the resource or when a change is made to a resource. They are factors for which compliance can be established at the time the resource is set up or modified by a user. In current systems, when a user is to make a change that may implicate a policy, a user interface may be provided by a management process to allow a request to be made for the change so that the request can be evaluated against the policy. This prevents non-compliant requests from being implemented. Thus, at the time a request for allocation or modification of an existing allocation is made, the compliance can be determined and there is no chance that an allocation will be non-compliant with a utilization policy. For the status policy, the resources are monitored because they may change over time due to factors that cannot be captured by testing the requests made by a user. The status policies relate to factors that can change during use, i.e. state information. The modifier status is used here in as a label to identify the class of requirements described herein and is not intended to limit according to a dictionary definition of status as construed literally or metaphorically. The same is true for the modifier utilization. The policies and status identify respective data stored in computer accessible data storage such as disk drives, volatile and non-volatile memory, and other types of data storage. The term database, as used herein, identify the physical and software infrastructure required to store and retrieve data.